#!perl
package MyTester::Roles::Mock::PuppetProvider;
use 5.010;
use Moose;
use MooseX::Method::Signatures;
use MooseX::StrictConstructor;

extends qw(MyTester::Roles::Mock::EmptyTest);
################################################################################
# Imports
################################################################################
use Carp;
use Data::Dumper;
use TryCatch;

################################################################################
# Constants
################################################################################


################################################################################
# Attributes
################################################################################

has 'flagForDependants' => (
   isa => 'Bool',
   traits => [qw(Bool)],
   is => 'ro',
   default => 0,
   handles => {
      provide => 'set',
      doNotProvide => 'unset',
   }
);

has '_toProvide' => (
   isa => 'Bool',
   is => 'rw',
);

################################################################################
# Methods
################################################################################

method test { 
   $self->_toProvide($self->flagForDependants);
}

method provides () {
   return $self->_toProvide();
}

################################################################################
# Roles (put here to compile properly w/ Moose)
################################################################################

with qw(MyTester::Roles::Provider MyTester::Roles::Testable);

1;